home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs07.d81
/
tester
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
7KB
|
248 lines
10 PRINT"[147]":POKE53280,0:POKE53281,0
20 PRINTSPC(174)"[169][146][158][169] [156][169][146][169][159] [146] [146][169]"
30 PRINTSPC(13)"[169][146][129][169] [153][169][146][156][169] [159] [146] [146][169]"
40 PRINTSPC(13)" [129] [158] [223][146] [153] [156] [159] [146]"
50 PRINTSPC(13)" [146] [146] [159] [146] [223][146]"
60 PRINTSPC(13)"[223][129] [158] [146][169] [159] [146] [223][146]"
70 PRINTSPC(87)" [146] [146] [169] [223][146] [146]"
80 PRINTSPC(9)" [146] [146] [146] [146]"
90 PRINTSPC(9)" [146] [146] [223] [223][146] [146]"
100 PRINTSPC(9)" [146] [146] [146] [146]"
110 PRINTSPC(9)" [146] [146] [223] [146][169] [146]"
120 PRINTSPC(92)"[154]BY THE COMPUCATS"
130 REM ***********************
140 REM ** C-64 TEST PROGRAM **
150 REM ** BY THE COMPUCATS **
160 REM ** ABERDEEN MD 21001 **
170 REM ***********************
180 REM *** SPRITE POSITION DATA ***
190 DATA 78,80,135,80,193,80,250,80
200 DATA 78,150,135,150,193,150,250,150
210 REM ****** PADDLE ML DATA *******
220 DATA162,1,120,173,2,220,141,0,193,169,192,141,2,220,169,128,141,0,220
230 DATA160,128,234,136,16,252,173,25,212,157,1,193,173,26,212,157,3,193,173,0
240 DATA220,9,128,141,5,193,169,64,202,16,222,173,0,193,141,2,220,173,1
250 DATA220,141,6,193,88,96
260 REM ****** USER RAM ML DATA *******
270 DATA169,0,133,251,133,253,169,8,133,252,169,194,133,254,162,152,160,0
280 DATA177,251,145,253,200,208,249,230,252,202,208,244,96
290 REM ****** SET UP ML ROUTINES *******
300 FORI=0TO15:READA%:NEXT:DIMA(6)
310 FORI=0TO63:READA%:POKE49152+I,A%:NEXT
320 FORI=0TO30:READA%:POKE50176+I,A%:NEXT
330 REM *** TITLE SCREEN ***
340 FORT=1TO3000:NEXT
350 REM ******** MAIN MENU ********
360 POKE53280,0:POKE53281,0:PRINT"[147]"
370 PRINTTAB(12)"[162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]"
380 PRINTTAB(8)"**** ENTER NUMBER [146]****"
390 PRINTTAB(12)"[162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]"
400 PRINT
410 PRINTTAB(9)"[209] (1) SPRITES"
420 PRINTTAB(15)"[158][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
430 PRINTTAB(9)"[209] (2) JOYSTICKS"
440 PRINTTAB(15)"[158][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
450 PRINTTAB(9)"[209] (3) PADDLES"
460 PRINTTAB(15)"[158][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
470 PRINTTAB(9)"[209] (4) USER RAM"
480 PRINTTAB(15)"[158][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
490 PRINTTAB(9)"[209] (5) SID (SOUND)"
500 PRINTTAB(15)"[158][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
510 PRINTTAB(9)"[209] (6) BASIC ROM"
520 PRINTTAB(15)"[158][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
530 B=0:A$="":FORI=1TO13STEP2:A(B)=I:B=B+1:NEXT
540 PRINT""
550 R=INT(RND(0)*6+1):B=INT(RND(1)*10+2)
560 PRINTLEFT$(A$,A(R));
570 POKE646,B:PRINTTAB(9);"[209]":FORT=1TO500:NEXT:GETI$:IFI$<>""THEN590
580 GOTO540
590 I=VAL(I$)
600 IF I<1ORI>6 THEN540
610 ONIGOTO630,1730,2080,2250,990,1240
620 REM ******** SPRITE CHECK *********
630 POKE53280,0:POKE53281,0:POKE646,14
640 PRINT"[147]"
650 FORX=12288TO12352STEP2:POKEX,255:NEXT
660 FORX=12289TO12351STEP2:POKEX,60:NEXT
670 RESTORE:FORX=0TO7:READX1(X),Y1(X):NEXT
680 SP=53248:POKESP+21,0:POKESP+23,0:POKESP+29,0
690 FORX2=0TO7:POKE2040+X2,192:NEXT
700 FORX3=0TO7:POKE2*X3+SP,X1(X3):POKE2*X3+1+SP,Y1(X3)+20:POKESP+39+X3,X3+1:NEXT
710 POKESP+21,255
720 PRINT"[147]"TAB(8)"1"TAB(15)"2"TAB(22)"3"TAB(29)"4"
730 PRINT""TAB(8)"5"TAB(15)"6"TAB(22)"7"TAB(29)"8"
740 FORN=0TO7:FORXY=19TO1STEP-1:POKESP+N*2+1,Y1(N)+XY:NEXT:NEXT
750 FORX=1TO4:FORN=0TO7:ON X GOSUB780,790,800,810
760 NEXT:NEXT:GOTO820
770 STOP
780 FORXY=1TO20:POKESP+N*2,X1(N)-XY:NEXT:RETURN
790 FORXY=1TO20:POKESP+N*2+1,Y1(N)-XY:NEXT:RETURN
800 FORXY=20 TO 1 STEP-1:POKESP+N*2,X1(N)-XY:NEXT:RETURN
810 FORXY=20TO1STEP-1:POKESP+N*2+1,Y1(N)-XY:NEXT:RETURN
820 FORX=0TO15:FORY=0TO7:POKESP+39+Y,X:NEXT:FORT=1TO400:NEXT:NEXT
830 FORX=0TO7:POKESP+39+X,X+1:NEXT
840 FORN=0TO7:POKESP+23,INT(2^N):FORT=1TO400:NEXT:NEXT:POKESP+23,0
850 FORN=0TO7:POKESP+29,INT(2^N):FORT=1TO400:NEXT:NEXT:POKESP+29,0
860 PRINT" WHICH SPRITE? (1-8 : 0 TO RETURN)"
870 GETA$:IFA$=""THEN870
880 GOSUB930
890 FORX=1TO4:ONXGOSUB780,790,800,810:NEXT
900 GOTO870
910 POKES+21,0:PRINT"[147]":END
920 GETA$:IFA$=""THEN920
930 A=ASC(A$):IFA<48ORA>56THEN920
940 IFA=48THEN970
950 N=VAL(A$)-1
960 RETURN
970 PRINT"[147]":POKESP+21,0:GOTO360
980 REM ******** SID CHECK *********
990 PRINT"[147]":PRINTSPC(93)"[162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]"
1000 PRINTTAB(10)"*** SID SOUND TEST [146]***"
1010 PRINTTAB(13)"[184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]"
1020 FF=1
1030 V=54272:FORL=VTOV+24:POKEL,0:NEXT:FORT=0TO2:K=T*7
1040 POKEV+5+K,88:POKEV+6+K,195:FORWA=1TO4:IFWA=1THENW=17
1050 IFWA=2THENW=33
1060 IFWA=3THENW=65
1070 IFWA=4THENW=129
1080 POKEV+24,15:POKEV+2+K,255:POKEV+4+K,W
1090 PRINT""TAB(12)"[154]VOICE [153]"T+1:PRINTSPC(92)"[154]WAVEFORM: [156]";
1100 IFWA=1THENPRINT"TRIANGLE "
1110 IFWA=2THENPRINT"SAWTOOTH "
1120 IFWA=3THENPRINT"PULSE "
1130 IFWA=4THENPRINT"WHITE NOISE"
1140 PRINT"":FORHI=1TO255 STEP2
1150 POKEV+1+K,HI:PRINTTAB(12)"[145][154]HIGH BYTE : "HI:NEXT:POKEV+4+K,0
1160 IFT=2ANDWA=4THEN1180
1170 NEXT:NEXT
1180 PRINT"[154] IF YOUR SID IS WORKING"
1190 PRINT" YOU SHOULD HAVE HEARD THE"
1200 PRINT" SOUNDS WITH ALL THREE VOICES."
1210 FORT=1TO5000:NEXT
1220 GOTO360
1230 REM ******** BASIC ROM CHECK *********
1240 B3=0:PRINT"[147]":PRINTTAB(13)"[159][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]"
1250 PRINTTAB(10)"***[159] BASIC ROM TEST [146]***"
1260 PRINTTAB(13)"[159][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]"
1270 B1=40960
1280 PRINT"[153]REGISTER BEING TESTED:"
1290 B2=PEEK(B1)
1300 PRINT"[159]";B1
1310 B3=B3+B2
1320 IFB1=41300THEN1430
1330 IFB1=42000THEN1450
1340 IFB1=43000THEN1470
1350 IFB1=44000THEN1490
1360 IFB1=45000THEN1510
1370 IFB1=46000THEN1530
1380 IFB1=47000THEN1550
1390 IFB1=48000THEN1580
1400 IFB1=49151THEN1610
1410 B1=B1+1:GOTO1290
1420 B1=B1+1:GOTO1290
1430 IFB3=43099THENPRINTSPC(46)"[156]PART 1 - OK":GOTO1640
1440 GOTO1660
1450 IFB3=66906THENPRINTSPC(86)"[156]PART 2 - OK":GOTO1640
1460 GOTO1660
1470 IFB3=117669THENPRINTSPC(126)"[156]PART 3 - OK":GOTO1640
1480 GOTO1660
1490 IFB3=114311THENPRINTSPC(166)"[156]PART 4 - OK":GOTO1640
1500 GOTO1660
1510 IFB3=111749THENPRINTSPC(206)"[156]PART 5 - OK":GOTO1640
1520 GOTO1660
1530 IFB3=114547THENPRINTSPC(246)"[156]PART 6 - OK":GOTO1640
1540 GOTO1660
1550 PRINT""
1560 IFB3=115993THENPRINTTAB(6)"[156]PART 7 - OK":GOTO1640
1570 GOTO1660
1580 PRINT""
1590 IFB3=114241THENPRINTTAB(6)"[156]PART 8 - OK":GOTO1640
1600 GOTO1660
1610 PRINT""
1620 IFB3=134691THENPRINTTAB(6)"[156]PART 9 - OK":GOTO1690
1630 GOTO1660
1640 B3=0:B1=B1+1:GOTO1290
1650 GOTO1290
1660 PRINT"A PROBLEM EXISTS IN THE ROM OF THIS COMPUTER"
1670 FORT=1TO3000:NEXT
1680 GOTO360
1690 PRINT"[153]THE BASIC ROM CHECKS OK"
1700 FORT=1TO2000:NEXT
1710 GOTO360
1720 REM ******** JOYSTICK CHECK *********
1730 PRINT"[147]":PRINTSPC(93)"[153][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]"
1740 PRINTTAB(10)"***[153] JOYSTICK CHECK [146]***"
1750 PRINTTAB(13)"[153][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]"
1760 PRINTSPC(128)"[154]PRESS F1 TO TEST PORT # 1"
1770 PRINTSPC(48)"PRESS F3 TO TEST PORT # 2"
1780 PRINTSPC(48)"PRESS F7 TO RETURN"
1790 FORX=12288TO12352STEP2:POKEX,127:NEXT
1800 FORX=12289TO12351STEP2:POKEX,254:NEXT
1810 SP=53248:X=150:Y=180:POKESP+21,1:POKESP+39,2
1820 POKE2040,192:POKESP,X:POKESP+1,Y
1830 IFAA=1THENJS=15-(PEEK(56321)AND15)
1840 IFAA=5THENJS=15-(PEEK(56320)AND15)
1850 IFJS=0THEN2020
1860 IFJS=1THENDX=0:DY=-2:GOTO1940
1870 IFJS=2THENDX=0:DY=2:GOTO1940
1880 IFJS=4THENDX=-2:DY=0:GOTO1940
1890 IFJS=5THENDX=-2:DY=-2:GOTO1940
1900 IFJS=6THENDX=-2:DY=2:GOTO1940
1910 IFJS=8THENDX=2:DY=0:GOTO1940
1920 IFJS=9THENDX=2:DY=-2:GOTO1940
1930 IFJS=10THENDX=2:DY=2:GOTO1940
1940 X=X+DX:Y=Y+DY
1950 IFX>255ANDPEEK(SP+16)=0THENPOKESP+16,1:X=0
1960 IFPEEK(SP+16)=1ANDX<0THENPOKESP+16,0:X=255
1970 IFY>220THENY=220
1980 IFY<50THENY=50
1990 IFX<40ANDPEEK(SP+16)=0THENX=40
2000 IFX>50ANDPEEK(SP+16)=1THENX=50
2010 POKESP,X:POKESP+1,Y
2020 GETA$
2030 IFA$=CHR$(133)THENAA=1
2040 IFA$=CHR$(134)THENAA=5
2050 IFA$=CHR$(136)THEN970
2060 GOTO1830
2070 REM ******** PADDLE CHECK **********
2080 PRINT"[147]":PRINTSPC(93)"[156][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]"
2090 PRINTTAB(10)"***[156] PADDLE TEST [146]***"
2100 PRINTTAB(13)"[156][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]"
2110 PRINTSPC(132)"[159]PRESS F1 TO RETURN"
2120 CC=49152
2130 SYSCC
2140 P1=PEEK(CC+257):P2=PEEK(CC+258)
2150 P3=PEEK(CC+259):P4=PEEK(CC+260)
2160 S1=PEEK(CC+261):S2=PEEK(CC+262)
2170 PRINT"[156] #1 #2 #3 #4"
2180 PRINT"[153] POSITIONS: ";P1;" ";P2;" ";P3;" ";P4
2190 PRINTSPC(43)"FIRE STATUS: ";S1;" ";S2
2200 FORT=1TO1000:NEXT
2210 PRINT"[145][145][145] "
2220 PRINT" "
2230 GETA$:IFA$=CHR$(133)THEN360
2240 GOTO2130
2250 PRINT"[147]":PRINTSPC(93)"[158][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]"
2260 PRINTTAB(10)"***[158] USER RAM TEST [146]***"
2270 PRINTTAB(13)"[158][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]"
2280 PRINTSPC(127)"[154]F1 - USER 38911 BYTES CHECK"
2290 PRINTSPC(87)"[153]F3 [192] DECIMAL DUMP TO SCREEN"
2300 PRINTSPC(87)"[150]F7 [192] RETURN"
2310 GETA$:IFA$=""THEN2310
2320 IFA$=CHR$(133)THEN2360
2330 IFA$=CHR$(134)THEN2430
2340 IFA$=CHR$(136)THEN360
2350 GOTO2310
2360 A=PEEK(40959):B=PEEK(40704)
2370 SYS50176
2380 IFA=PEEK(49919)ANDB=PEEK(49664)THEN2400
2390 PRINT"PROBLEM IN HIGH SIDE OF USER RAM":GOTO2410
2400 PRINT"[156] USER RAM IS OK"
2410 FORT=1TO3000:NEXT
2420 GOTO2250
2430 PRINT"[158] ENTER PAGE # 8-159 ";:INPUTI$
2440 PRINT"[147]":POKE53281,1:I=VAL(I$):POKE646,6
2450 FORJ=0TO255:PRINTPEEK(I*256+J);" ";:NEXT
2460 FORI=0TO4000:NEXT
2470 POKE53281,0:GOTO2250